perm filename HHT0.FAI[CMS,LCS] blob
sn#331847 filedate 1978-01-31 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00015 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .INSERT ASMBL.FAI[CMS,LCS]
C00003 00003 Reset
C00005 00004 REFRESH LOOP
C00007 00005 WAIT LOOP AND SETUP
C00009 00006 UPDATE SCREEN
C00011 00007 KB INTERUPT ROUTINE
C00013 00008 RS232 INTERUPT ROUTINE
C00015 00009 RS232 CONTROL
C00017 00010 SCROLL UP
C00019 00011 CK IF IN WINDOW
C00021 00012 HOME CURSOR
C00023 00013 ASCII TABLE BITS 7 6 5 4 3 2 1 0
C00026 00014 CHRGEN FONT = CAP7X5
C00030 00015 CGEN3: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000
C00034 ENDMK
C⊗;
.INSERT ASMBL.FAI[CMS,LCS]
CPL ← = 28 ;CHRS PER LINE
NCHRS ← = 112 ;CHRS PER SCREEN
; Zpage ram
COL: 0
CUR: 0
0
WINDOW: 0
0
TMP: 0
0
LINL: 0
CHRL: 0
BRT: 0
NWAIT: 0
UPFLG: 0
CURVIS: 0
DIS: 0
0
BLOCK = 369
; LOC 600
REBUF0: BLOCK = 128 ;REFRESH BUFFER
; LOC 1000
REBUF1: BLOCK = 128
; LOC 1200
REBUF2: BLOCK = 128
; LOC 1400
REBUF3: BLOCK = 128
; LOC 1600
REBUF4: BLOCK = 128
BLOCK = 1024
; LOC 4000
ABUF: 0 ;ASCII CHR BUF
; Reset
; LOC 174000
LOC 174274
RSTA: LDAI 377 ;TURN OFF COLS
STA COLREG
CLD ;CLEAR DECIMAL MODE
LDXI 177 ;STACK DEPTH
TXS ;SETUP STACK
LDAI 4 ;SETUP BRIGHTNESS
STAZ BRT
; SETUP AND CLEAR SCREEN
;CLEAR ABUF, SETUP CURSOR AND WINDOW
SD ← 10 ;START OF ABUF
ED ← 14 ;END OF ABUF
JSR HOME ;SETUP CURSOR
LDAI =16 ;NUMBER OF LINES IN MEM
STAZ TMP
CLRM: JSR LF ;<lf> THEN CLEAR LINE *16
DECZ TMP
BNE CLRM
; INIT I/O
;INIT RS232
SIODEF ← 225 ;UART CONTROL WORD
ACIAC ← 77776 ;UART CONTROL REG ADDRESS
ACIAD ← 77777 ;UART DATA REG ADDRESS
LDAI 3 ;RESET ACIA
STA ACIAC
LDAI SIODEF ;SETUP DEFAULT I/O CONTROL
STA ACIAC
;INIT KB SCANER
KBD ← 23776 ;KEYBOARD DATA REGISTER ADDRESS
KBC ← 23777 ;KEYBOARD CONTROL REGISTER ADDRESS
LDAI 2 ;KB DPY MODE SET
STA KBC
LDAI 60 ;KB CLK DIV
STA KBC
LDAI 220 ;WRITE DPY RAM
STA KBC
SEC
LDAI 376
KBSCAN: STA KBD
ROLA
BCS KBSCAN
LDAI 302 ;CLEAR KB INTERUPT
STA KBC
LDAI 100 ;READ KB
STA KBC
CLI ;ENABLE INTERUPTS
; REFRESH LOOP
NCHRS ← =112 ;NUMBER OF CHRS ON SCREEN
DPYSR ← 27777 ;DISPLAY SHIFT REGISTER ADDRESS
LDXI NCHRS-1
RELOOP: LDAI 376
STAZ COL ;SETUP COL BIT 1
; CY
SLOOP0: LDAX REBUF0 ;PUT FIRST COL IN SHIFT 4
STA DPYSR ;REGISTER STARTING WITH LAST CHR 4
DEX ; 2
BPL SLOOP0 ; _3_
JSR NXCOL ;TURN ON COL AND WAIT 5+(13*112)=1461
SLOOP1: LDAX REBUF1 ;SECOND
STA DPYSR
DEX
BPL SLOOP1
JSR NXCOL
SLOOP2: LDAX REBUF2 ;THIRD
STA DPYSR
DEX
BPL SLOOP2
JSR NXCOL
SLOOP3: LDAX REBUF3 ;FORTH
STA DPYSR
DEX
BPL SLOOP3
JSR NXCOL
SLOOP4: LDAX REBUF4 ;FIFTH
STA DPYSR
DEX
BPL SLOOP4
JSR NXCOL
JMP RELOOP
; WAIT LOOP AND SETUP
COLREG ← 33777 ;COL ENABLE REGISTER ADDRESS
CPL ← = 28 ;NUMBER OF CHRS PER LINE
; CY
; TURN ON COL
NXCOL: LDAZ COL ; 3
STA COLREG ;TURN ON COL 4
SEC ; 2
ROLZ COL ;SHIFT FOR NEXT COL 5
; WAIT(BRIGHTNESS) Tcy = 1488 = .9916 ms
LDXZ BRT ; 3
LDAX BTBL ; 4
STAZ NWAIT ; 4
WAIT1: DECZ NWAIT ; 5
BNE WAIT1 ; 3
LDAX OFFTBL ; 4
STAZ NWAIT ; 4
LDXI NCHRS-1 ; 2
; TURN OFF COL
LDAI 377 ; 2
STA COLREG ;TURN OFF COL 4
LDAZ UPFLG ;CK IF UPDATE FLAG SET 3
BNE UPDATE ; 2
; WAIT(¬BRIGHTNESS)
WAIT2: DECZ NWAIT ; 5
BNE WAIT2 ; 3
RTS ; 6
; BRIGHTNESS TABLES
BTBL: =102 ↔ =116 ↔ =130 ↔ =144 ↔ =158 ↔ =172 ↔ =186 ↔ =200
OFFTBL: =98 ↔ =84 ↔ =70 ↔ =56 ↔ =42 ↔ =28 ↔ =14 ↔ 1
; UPDATE SCREEN
UPDATE: LDAI 0 ;RESET UDATE FLAG
STAZ UPFLG
LDAZ WINDOW ;COPY WINDOW INTO TEMP
STAZ TMP
LDAZ WINDOW+1
STAZ TMP+1
LDAI 4 ;NUMBER OF LINES PER SCREEN
STAZ LINL
LDYI 0
LLOOP: LDAI CPL ;28 CHRS TO GO
STAZ CHRL
ULOOP: LDXI 0
LDAIX TMP ;WRITE CHRGEN BITS INTO REBUF
JSR WCHR
INY
INCZ TMP
DECZ CHRL
BNE ULOOP ;MORE CHRS LEFT ON LINE
LDAZ TMP
CLC
ADCI 44 ;100-CPL = NEXT LINE
STAZ TMP
BCC NOOF
INCZ TMP+1
LDAZ TMP+1
CMPI ED
BNE NOOF
LDAI SD
STAZ TMP+1
NOOF: DECZ LINL
BNE LLOOP ;DO NEXT LINE
JSR SHOCUR ;SHOW CURSOR IF ON SCREEN
LDXI NCHRS-1 ;SETUP X
RTS
; KB INTERUPT ROUTINE
KBINT: PHA ;SAVE REGS
TXA
PHA
LDX KBD ;GET CHR FROM KB
LDAI 302 ;CLEAR KB INTERUPT
STA KBC
CLI ;CLEAR INTERUPT MASK
OWAIT: LDA ACIAC
ANDI 2 ;CHECK IF FULL
BEQ OWAIT
LDAX CHRTBL ;CONVERT KB TO ASCCI
STA ACIAD ;OUTPUT IT
PLA ;RESTORE REGS
TAX
PLA
RTI ;RETURN
;ERASE CURSOR
CKERA: LDYZ CURVIS
BMI NOS ;CK IF ON SCREEN
LDXI 0
LDAIX CUR
; GEN CHR
WCHR: TAX ;X ← ASCII CHR
LDAX CGEN0 ;FILL REBUF COLS 0-4
STAY REBUF0
LDAX CGEN1
STAY REBUF1
LDAX CGEN2
STAY REBUF2
LDAX CGEN3
STAY REBUF3
LDAX CGEN4
STAY REBUF4
NOS: RTS
; <bspace>
BS: JSR CKERA ;ERASE OLD CURSOR IF ON SCREEN
LDAZ CUR ;DECERMENT CURSOR
BNE NOBACK
DECZ CUR+1
LDAZ CUR+1
CMPI SD-1 ;CK IF BEFORE BEGINING
BNE NOBACK
LDAI ED-1 ;WRAP AROUND
STAZ CUR+1
NOBACK: DECZ CUR
JMP CKCUR ;SHOW CURSOR IF ON SCREEN
; CURSOR OFF LINE
OFFLIN: DECZ CUR ;FIX CUR FOR <cr>
JSR CR ;<cr>
JMP RLF ;<lf>, CK SCROLL AND UPDATE
; RS232 INTERUPT ROUTINE
RSINT: PHA ;SAVE REGS
TXA
PHA
TYA
PHA
LDA ACIAD ;GET CHR FROM ACIA
ANDI 177 ;7 BITS
CMPI 30 ;CONTROL CODES
BCC SCNTRL
CMPI 177 ;<bspace>
BEQ BS
PCHR: LDXI 0
STAIX CUR ;STORE IN ABUF
LDYZ CURVIS ;CK IF IN WINDOW
BMI INCUR
JSR WCHR ;WRITE CHR IN REBUF
INCUR: INCZ CUR ;INCREMENT CURSOR
LDAZ CUR
ANDI 77
BEQ OFFLIN ;BRANCH IF OFF END OF LINE
; WINDOW IT IF NOT VIS
CKCUR: JSR CKVIS ;SHOW CURSOR IF ON SCREEN
LDAZ DIS+1
BNE SETW ;CK IF NOT ON PAGE
LDAZ DIS
CMPI 334
BCC SHOWIT
SETW: LDAZ CUR
ANDI 300 ;SET WINDOW AT BOTTOM OF SCREEN
SEC
SBCI 300
STAZ WINDOW
LDAZ CUR+1
SBCI 0
BCS NOTB4
LDAI ED-1
NOTB4: STAZ WINDOW+1
JMP SETFLG ;SET UPDATE FLAG AND CK IF VIS
SHOWIT: JSR SHOCUR ;WRITE CURSOR INTO REBUF
RSRTRN: PLA ;RESTORE REGS
TAY
PLA
TAX
PLA
RTI ;RETURN
; RS232 CONTROL
SCNTRL: CMPI 12 ;<lf>
BEQ RLF
CMPI 15 ;<cr>
BEQ RCR
CMPI 13 ;SCROLL UP
BEQ SCRLU
CMPI 14 ;SCROLL DOWN
BEQ SCRLD
CMPI 20 ;RIGHT
BEQ RIGHT
CMPI 21 ;LEFT
BEQ LEFT
CMPI 22 ;BRIGHTER
BEQ BRIGHT
CMPI 23 ;DIMMER
BEQ DIM
CMPI 24 ;HOME
BNE PCHR ;PRINT IT ANYWAY
JSR HOME
JMP SETFLG ;SET UPDATE FLAG
; <lf>
RLF: JSR LF ;<lf>
INCZ UPFLG ;UPDATE SCREEN
JMP CKCUR
; <cr>
RCR: JSR CKERA ;ERASE OLD CURSOR
JSR CR
JMP CKCUR ;SHOW CURSOR IF ON SCREEN
; SCROLL DOWN
SCRLD: LDAZ WINDOW
CLC
ADCI 100 ;FOR 64 CHRS
STAZ WINDOW
BCC SETFLG
INCZ WINDOW+1
LDAZ WINDOW+1
CMPI ED
BNE SETFLG
LDAI SD
STAZ WINDOW+1
SETFLG: JSR CKVIS
INCZ UPFLG ;UPDATE SCREEN
JMP RSRTRN
; SCROLL UP
SCRLU: LDAZ WINDOW
SEC
SBCI 100 ;64 CHRS PER LINE
STAZ WINDOW
BCS SETFLG
DECZ WINDOW+1
LDAZ WINDOW+1
CMPI SD-1
BNE SETFLG
LDAI ED-1
STAZ WINDOW+1
JMP SETFLG
; WINDOW RIGHT
RIGHT: LDAZ WINDOW
ANDI 77
CMPI 44
BEQ BEST
LDAZ WINDOW
CLC
ADCI 22
STAZ WINDOW
JMP SETFLG
; WINDOW LEFT
LEFT: LDAZ WINDOW
ANDI 77
BEQ BEST
LDAZ WINDOW
SEC
SBCI 22
STAZ WINDOW
JMP SETFLG
; BRIGHTER
BRIGHT: LDAZ BRT
CMPI 7 ;BRIGHTEST
BEQ BEST
INCZ BRT
BEST: JMP RSRTRN
; DIMMER
DIM: DECZ BRT
BPL BEST
INCZ BRT ;DIMMEST
JMP RSRTRN
; CK IF IN WINDOW
CKVIS: LDYI 377 ;SET NO SHOW
LDAZ CUR ;GET DISTANCE
SEC
SBCZ WINDOW
STAZ DIS
LDAZ CUR+1
SBCZ WINDOW+1
BCS CKEQ
ADCI 4 ;IF NEG, ADD BUF LEN
CKEQ: STAZ DIS+1
BNE NOTVIS ;NO SHOW IF ≥ 256
LDAZ DIS
ANDI 77
CMPI CPL ;NO SHOW IF ≥ 28
BCS NOTVIS
STAZ CURVIS
LDAZ DIS ;GET REBUF INDEX
ANDI 300
ROLA
ROLA
ROLA
TAX
LDAX ROWTBL ;NLINES * 28
ADCZ CURVIS
TAY
NOTVIS: STYZ CURVIS
RTS
ROWTBL: 0
CPL
CPL*2
CPL*3
SHOCUR: LDYZ CURVIS
BMI NOSHO
LDAY REBUF0 ;OR CURSOR INTO CHR
ORAI 100
STAY REBUF0
LDAY REBUF1
ORAI 100
STAY REBUF1
LDAY REBUF2
ORAI 100
STAY REBUF2
LDAY REBUF3
ORAI 100
STAY REBUF3
LDAY REBUF4
ORAI 100
STAY REBUF4
NOSHO: RTS
; HOME CURSOR
HOME: LDAI 0 ;CURSOR ← WINDOW ← TOP
STAZ CUR
STAZ WINDOW
STAZ CURVIS
LDAI SD
STAZ CUR+1
STAZ WINDOW+1
STAZ UPFLG ;SET UPDATE FLAG
RTS
; <lf> SUBROUTINE
LF: LDAZ CUR
CLC
ADCI 100 ;CUR ← CUR + 64
STAZ CUR
BCC CTEOL
INCZ CUR+1
LDAZ CUR+1
CMPI ED
BNE CTEOL
LDAI SD ;WRAP AROUND
STAZ CUR+1
; CLEAR TO END OF LINE.
CTEOL: LDAZ CUR
ANDI 77
EORI 77
TAY ;Y ← # CHRS LEFT ON LINE
LDAI 40 ;<space>
CLRL: STAIY CUR ;FILL CURSOR TO CURSOR + CPL
DEY ;WITH SPACES
BPL CLRL
RTS
; <cr> SUBROUTINE
CR: LDAZ CUR ;CUR ← CUR ∧ ¬77
ANDI 300
STAZ CUR
RTS
; ASCII TABLE BITS 7 6 5 4 3 2 1 0
; LOC 176000 CNTL SHFT S2 S1 S0 RL2 RL1 RL0
LOC 176274
CHRTBL: "0" ↔ "5" ↔ "A" ↔ "F" ↔ "K" ↔ "P" ↔ "U" ↔ 7
"1" ↔ "6" ↔ "B" ↔ "G" ↔ "L" ↔ "Q" ↔ "V" ↔ "Z"
"2" ↔ "7" ↔ "C" ↔ "H" ↔ "M" ↔ "R" ↔ "W" ↔ 177
"3" ↔ "8" ↔ "D" ↔ "I" ↔ "N" ↔ "S" ↔ "X" ↔ " "
"4" ↔ "9" ↔ "E" ↔ "J" ↔ "O" ↔ "T" ↔ "Y" ↔ 15
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
"," ↔ "(" ↔ 20 ↔ 21 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ;SHIFT
"." ↔ ")" ↔ 13 ↔ 14 ↔ 7 ↔ 7 ↔ 7 ↔ 7
";" ↔ "/" ↔ 22 ↔ 23 ↔ 7 ↔ 7 ↔ 7 ↔ 7
":" ↔ "\" ↔ 24 ↔ 25 ↔ 7 ↔ 7 ↔ 7 ↔ 7
"=" ↔ "?" ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ;CONTROL
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ;CNTL SHFT
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7 ↔ 7
; CHRGEN FONT = CAP7X5
; LOC 176400
LOC 176674
CGEN0: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
010 ↔ 000 ↔ 010 ↔ 010 ↔ 010 ↔ 000 ↔ 010 ↔ 010
000 ↔ 157 ↔ 003 ↔ 024 ↔ 056 ↔ 043 ↔ 060 ↔ 003
034 ↔ 101 ↔ 052 ↔ 010 ↔ 100 ↔ 010 ↔ 140 ↔ 040
076 ↔ 102 ↔ 102 ↔ 042 ↔ 010 ↔ 057 ↔ 060 ↔ 101
066 ↔ 106 ↔ 146 ↔ 114 ↔ 010 ↔ 024 ↔ 101 ↔ 002
164 ↔ 176 ↔ 177 ↔ 076 ↔ 177 ↔ 177 ↔ 177 ↔ 076
177 ↔ 101 ↔ 040 ↔ 177 ↔ 177 ↔ 177 ↔ 177 ↔ 076
177 ↔ 076 ↔ 177 ↔ 046 ↔ 001 ↔ 077 ↔ 037 ↔ 177
143 ↔ 003 ↔ 141 ↔ 177 ↔ 002 ↔ 101 ↔ 004 ↔ 010
000 ↔ 044 ↔ 177 ↔ 070 ↔ 060 ↔ 070 ↔ 010 ↔ 030
177 ↔ 172 ↔ 000 ↔ 177 ↔ 101 ↔ 174 ↔ 174 ↔ 070
174 ↔ 070 ↔ 174 ↔ 110 ↔ 004 ↔ 074 ↔ 034 ↔ 074
104 ↔ 030 ↔ 104 ↔ 010 ↔ 177 ↔ 000 ↔ 101 ↔ 000
CGEN1: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
010 ↔ 000 ↔ 010 ↔ 010 ↔ 010 ↔ 000 ↔ 010 ↔ 010
000 ↔ 157 ↔ 000 ↔ 177 ↔ 111 ↔ 023 ↔ 116 ↔ 000
042 ↔ 042 ↔ 034 ↔ 010 ↔ 040 ↔ 010 ↔ 140 ↔ 020
121 ↔ 177 ↔ 141 ↔ 101 ↔ 014 ↔ 111 ↔ 110 ↔ 041
111 ↔ 051 ↔ 146 ↔ 054 ↔ 024 ↔ 024 ↔ 042 ↔ 001
124 ↔ 011 ↔ 111 ↔ 101 ↔ 101 ↔ 111 ↔ 011 ↔ 101
010 ↔ 177 ↔ 100 ↔ 010 ↔ 100 ↔ 002 ↔ 004 ↔ 101
011 ↔ 101 ↔ 011 ↔ 111 ↔ 001 ↔ 100 ↔ 040 ↔ 040
024 ↔ 004 ↔ 121 ↔ 101 ↔ 004 ↔ 101 ↔ 002 ↔ 034
000 ↔ 124 ↔ 110 ↔ 104 ↔ 110 ↔ 124 ↔ 176 ↔ 044
010 ↔ 000 ↔ 000 ↔ 040 ↔ 177 ↔ 004 ↔ 010 ↔ 104
104 ↔ 104 ↔ 010 ↔ 124 ↔ 004 ↔ 100 ↔ 040 ↔ 100
050 ↔ 040 ↔ 144 ↔ 066 ↔ 000 ↔ 000 ↔ 101 ↔ 000
CGEN2: 000 ↔ 017 ↔ 177 ↔ 170 ↔ 010 ↔ 010 ↔ 010 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 170
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
170 ↔ 017 ↔ 017 ↔ 170 ↔ 017 ↔ 177 ↔ 177 ↔ 177
000 ↔ 000 ↔ 003 ↔ 024 ↔ 177 ↔ 010 ↔ 121 ↔ 000
101 ↔ 034 ↔ 076 ↔ 076 ↔ 000 ↔ 010 ↔ 000 ↔ 010
111 ↔ 100 ↔ 121 ↔ 101 ↔ 012 ↔ 111 ↔ 114 ↔ 021
111 ↔ 031 ↔ 000 ↔ 000 ↔ 042 ↔ 024 ↔ 024 ↔ 121
164 ↔ 011 ↔ 111 ↔ 101 ↔ 101 ↔ 111 ↔ 011 ↔ 101
010 ↔ 101 ↔ 100 ↔ 024 ↔ 100 ↔ 004 ↔ 010 ↔ 101
011 ↔ 121 ↔ 031 ↔ 111 ↔ 177 ↔ 100 ↔ 100 ↔ 020
010 ↔ 170 ↔ 111 ↔ 101 ↔ 010 ↔ 177 ↔ 177 ↔ 052
000 ↔ 124 ↔ 110 ↔ 104 ↔ 110 ↔ 124 ↔ 011 ↔ 044
010 ↔ 000 ↔ 000 ↔ 020 ↔ 100 ↔ 170 ↔ 004 ↔ 104
104 ↔ 104 ↔ 004 ↔ 124 ↔ 077 ↔ 100 ↔ 100 ↔ 074
020 ↔ 100 ↔ 124 ↔ 101 ↔ 000 ↔ 000 ↔ 076 ↔ 000
CGEN3: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
000 ↔ 010 ↔ 000 ↔ 010 ↔ 010 ↔ 010 ↔ 000 ↔ 010
000 ↔ 000 ↔ 000 ↔ 177 ↔ 111 ↔ 144 ↔ 046 ↔ 000
000 ↔ 000 ↔ 034 ↔ 010 ↔ 000 ↔ 010 ↔ 000 ↔ 004
105 ↔ 000 ↔ 111 ↔ 111 ↔ 177 ↔ 111 ↔ 112 ↔ 011
111 ↔ 011 ↔ 000 ↔ 000 ↔ 101 ↔ 024 ↔ 010 ↔ 011
104 ↔ 011 ↔ 111 ↔ 101 ↔ 101 ↔ 111 ↔ 011 ↔ 111
010 ↔ 000 ↔ 100 ↔ 042 ↔ 100 ↔ 002 ↔ 020 ↔ 101
011 ↔ 041 ↔ 051 ↔ 111 ↔ 001 ↔ 100 ↔ 040 ↔ 040
024 ↔ 004 ↔ 105 ↔ 000 ↔ 020 ↔ 000 ↔ 002 ↔ 010
000 ↔ 124 ↔ 110 ↔ 104 ↔ 110 ↔ 124 ↔ 011 ↔ 144
010 ↔ 000 ↔ 172 ↔ 050 ↔ 000 ↔ 004 ↔ 004 ↔ 104
104 ↔ 104 ↔ 004 ↔ 124 ↔ 104 ↔ 100 ↔ 040 ↔ 100
050 ↔ 100 ↔ 114 ↔ 101 ↔ 000 ↔ 000 ↔ 010 ↔ 000
CGEN4: 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010 ↔ 010 ↔ 000
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 010
000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000 ↔ 000
000 ↔ 010 ↔ 000 ↔ 010 ↔ 010 ↔ 010 ↔ 000 ↔ 010
000 ↔ 010 ↔ 014 ↔ 024 ↔ 062 ↔ 142 ↔ 100 ↔ 040
044 ↔ 050 ↔ 052 ↔ 010 ↔ 064 ↔ 010 ↔ 074 ↔ 002
076 ↔ 110 ↔ 106 ↔ 066 ↔ 010 ↔ 061 ↔ 061 ↔ 007
066 ↔ 006 ↔ 154 ↔ 160 ↔ 000 ↔ 024 ↔ 000 ↔ 006
174 ↔ 176 ↔ 066 ↔ 042 ↔ 076 ↔ 101 ↔ 001 ↔ 072
177 ↔ 050 ↔ 077 ↔ 101 ↔ 100 ↔ 177 ↔ 177 ↔ 076
006 ↔ 136 ↔ 106 ↔ 062 ↔ 001 ↔ 077 ↔ 037 ↔ 177
143 ↔ 003 ↔ 103 ↔ 160 ↔ 040 ↔ 170 ↔ 004 ↔ 010
000 ↔ 170 ↔ 060 ↔ 104 ↔ 177 ↔ 130 ↔ 002 ↔ 072
160 ↔ 050 ↔ 000 ↔ 104 ↔ 064 ↔ 170 ↔ 170 ↔ 070
070 ↔ 174 ↔ 010 ↔ 044 ↔ 104 ↔ 074 ↔ 034 ↔ 074
104 ↔ 070 ↔ 104 ↔ 000 ↔ 140 ↔ 000 ↔ 000 ↔ 000
; INTER VECTS
; LOC 177772
LOC 200266
NMIV: KBINT∧377 ;NMIV: ABSO KBINT
371
RSTV: 0 ;RSTV: ABSO RSTA
370
IRQV: RSINT∧377 ;IRQV: ABSO RSINT
371
END